SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE Procedure [dbo].[SP_TCCANJ_CL02_I01]     
/*-------------------------------------------------------*/      
/*---Empresa              : OFISIS S.A.                --*/      
/*---Cliente              : OFISIS S.A.                --*/      
/*---Sistema              : Tesoreria                  --*/      
/*---M÷dulo               : Empresa                    --*/      
/*---Programa             : Grabaci÷n Letras Generadas --*/      
/*                          por Canje                  --*/      
/*---       CTAS POR COBRAR            --*/       
/*---Script               : tccanj_clie1.sql           --*/      
/*---Nombre SP            : SP_TCCANJ_CL02_I01         --*/      
/*---Desarrollado por     : Eduardo Vivar              --*/      
/*---Fecha Creaci÷n       : 31/01/2000                 --*/      
/*---Base Datos           : Microsoft Sql Server       --*/      
/*---Versi÷n              : 7.0                        --*/      
/*---Invoca a SP          :                            --*/      
/*-------------------------------------------------------*/      
      
/*-------------------------------------------------------*/      
/*---Modificado 1 por     :  D.CH                          --*/      
/*---Fecha Modificaci÷n   :  Agregar Comentarios        --*/       
/*---Detalle Modificaci÷n :  15/03/2002                          --*/      
/*-------------------------------------------------------*/      
/*-------------------------------------------------------*/    
/*---Modificado 1 por     : Maribel Julca Rodriguez      --*/    
/*---Fecha Modificaci©n   : 20/04/2005                   --*/     
/*---Detalle Modificaci©n : ingreso de los campos CO_USUA_CREA Y CO_USUA_MODI                           --*/    
/*-------------------------------------------------------*/          
/*-------------------------------------------------------*/      
/*---Comentarios                                       --*/      
/*---                                                  --*/      
/*---                                                  --*/      
/*-------------------------------------------------------*/      
      
/*-------------------------------------------------------*/      
/*---Drop Proc SP_TCCANJ_CL02_I01                      --*/      
/*--- Grant Execute On SP_TCCANJ_CL02_I01 to public         --*/       
/*---SP_TCCANJ_CL02_I01                                --*/      
/*-------------------------------------------------------*/      
 @ISCO_EMPR      TD_VC_002,       
 @ISCO_USUA_MODI TD_VC_008_USUA,      
 @ISNO_AVAL  TD_VC_100,      
 @ISNO_DIRE_AVAL TD_VC_100,      
 @ISNU_RUCC_AVAL TD_VC_020,      
 @ISNU_TELE_AVAL TD_VC_020,      
 @ISCO_CLIE      TD_VC_020,      
 @IDFE_CANJ      TD_DT_001,      
 @ISCO_MONE      TD_VC_003,      
 @INFA_TIPO_CAMB TD_NU_015_006,      
 @ISCO_BANC      TD_VC_003,      
 @ISCO_AGEN      TD_VC_003,      
 @ISNU_CANJ      TD_VC_008,      
 @ISCO_ESTA_DOCU TD_VC_003,      
 @ISCO_TIPO_OPER TD_VC_003,      
 @ISDE_LUGA_GIRO TD_VC_020,      
 @ISCO_UNID_CNTB TD_VC_003,      
 @ISNU_SERI   	 TD_VC_004,      
 @ISST_MODI   	 TD_VC_001
	As
Declare       
   @CNNU_ORDE_LETR TD_IN_001,      
   @CSUL_CORR_LETR TD_VC_020,      
   @CDFE_VENC     TD_DT_001,      
   @CNIM_TOTA     TD_NU_016_004,      
   @CNIM_SALD  TD_NU_016_004,      
   @CNIM_AMRT  TD_NU_016_004,      
   @CNIM_INTR  TD_NU_016_004,      
   @CNIM_VALO_CUOT TD_NU_016_004,      
      
   @CSDE_GLOS     TD_VC_100,      
      
   @VNNU_SECU      TD_IN_001,         
   @OSTI_DOCU      TD_VC_003,      
   @VSTI_CLIE     TD_VC_003,      
   @VNNU_FETC_0001 TD_IN_001,      
   @VNNU_LONG     TD_IN_001,      
   @VSUL_CORR_LETR TD_VC_020,      
   @VNNU_ULTI_CORR TD_IN_001      
      
      
   Exec SP_TTDOCU_CNTB_Q02 6, @OSTI_DOCU OUTPUT      
      
      
   Select @VNNU_LONG = NU_LONG      
   From TTDOCU_CNTB 


   Where TI_DOCU = @OSTI_DOCU      
      
   Select @VSTI_CLIE = T1.TI_CLIE      
   From TMAUXI_EMPR T1, TMPARA_TESO T2      
   Where T1.CO_EMPR = @ISCO_EMPR      
   And T1.TI_AUXI_EMPR = T2.CO_TIAU_CLIE      
   And T1.CO_AUXI_EMPR = @ISCO_CLIE      
   And T1.CO_EMPR = T2.CO_EMPR      
      
      
 Begin Tran SP_TCCANJ_CL02_I01      
      
   Declare CU_TCCANJ_CL02_I01_1 Cursor      
   For      
   Select NU_ORDE_LETR, UL_CORR_LETR, FE_VENC, IM_TOTA,       
   IM_SALD, IM_AMRT, IM_INTR, IM_VALO_CUOT, DE_GLOS        
   From  #TWPLAZ_CN02            
   Open  CU_TCCANJ_CL02_I01_1      
   Fetch CU_TCCANJ_CL02_I01_1 Into      
   @CNNU_ORDE_LETR, @CSUL_CORR_LETR, @CDFE_VENC, @CNIM_TOTA,       
   @CNIM_SALD, @CNIM_AMRT, @CNIM_INTR, @CNIM_VALO_CUOT, @CSDE_GLOS      
      
   Select @VNNU_FETC_0001 = @@FETCH_STATUS      
      
   While (@VNNU_FETC_0001 = 0)      
     Begin      
       If (@VNNU_FETC_0001  < 0)      
          Begin      
        RAISERROR 20001 'FIN DE ARCHIVO'      
        CLOSE CU_TCCANJ_CL02_I01_1      
        DEALLOCATE CU_TCCANJ_CL02_I01_1      
        RETURN      
          End      
      
   If Rtrim(Isnull(@ISNU_SERI, '')) != ''      
     Begin      
    Select @VNNU_ULTI_CORR = NU_ULTI_CORR + 1      
    From TDCORR_FINA      
    Where CO_EMPR = @ISCO_EMPR       
    And TI_DOCU = @OSTI_DOCU      
    And NU_SERI = @ISNU_SERI      
      
    Update TDCORR_FINA      
    Set NU_ULTI_CORR = @VNNU_ULTI_CORR,
	CO_USUA_MODI = @ISCO_USUA_MODI,  
    FE_USUA_MODI = GETDATE()        
    Where CO_EMPR = @ISCO_EMPR       
    And TI_DOCU = @OSTI_DOCU      
    And NU_SERI = @ISNU_SERI      
      
    Select @VSUL_CORR_LETR = @ISNU_SERI + REPLICATE('0', @VNNU_LONG - 2 - Len(@ISNU_SERI) -       
         Len(Convert(Varchar(15), @VNNU_ULTI_CORR))) +      
         Convert(Varchar(15), @VNNU_ULTI_CORR) + '-0'      
     End      
   Else      
     Begin      
    Select @VNNU_ULTI_CORR = NU_ULTI_CORR + 1      
    From TTCORR_FINA      
    Where CO_EMPR = @ISCO_EMPR       
    And TI_DOCU = @OSTI_DOCU      
      
    Update TTCORR_FINA      
    Set NU_ULTI_CORR = @VNNU_ULTI_CORR,
	CO_USUA_MODI = @ISCO_USUA_MODI,  
    FE_USUA_MODI = GETDATE()        
    Where CO_EMPR = @ISCO_EMPR       
    And TI_DOCU = @OSTI_DOCU      
      
    Select @VSUL_CORR_LETR = REPLICATE('0', @VNNU_LONG - 2 - Len(Convert(Varchar(15), @VNNU_ULTI_CORR))) +      
         Convert(Varchar(15), @VNNU_ULTI_CORR) + '-0'      
     End      
        
   If @VSUL_CORR_LETR != @CSUL_CORR_LETR      
     Select @ISST_MODI = 'S'      
      
   Insert into TMLETR_CL02 (CO_EMPR, NU_LETR_CLIE, CO_CLIE, FE_EMIS,       
  FE_VENC, CO_MONE, FA_TIPO_CAMB, IM_TOTA, DE_GLOS, CO_BANC, CO_AGEN,      
     NU_CANJ, CO_ESTA_DOCU, CO_TIPO_OPER, CO_UNID_CONC, NO_AVAL, NO_DIRE_AVAL,       
        NU_RUCC_AVAL, NU_TELE_AVAL, DE_LUGA_GIRO, TI_CLIE, IM_SALD,       
  IM_AMRT, IM_INTR, IM_VALO_CUOT, CO_USUA_CREA,FE_USUA_CREA, CO_USUA_MODI, FE_USUA_MODI)      
   Values ( @ISCO_EMPR, @VSUL_CORR_LETR, @ISCO_CLIE, @IDFE_CANJ, @CDFE_VENC,      
        @ISCO_MONE, @INFA_TIPO_CAMB, @CNIM_TOTA, @CSDE_GLOS, @ISCO_BANC, @ISCO_AGEN,       
        @ISNU_CANJ, @ISCO_ESTA_DOCU, @ISCO_TIPO_OPER,  @ISCO_UNID_CNTB,  @ISNO_AVAL,      
        @ISNO_DIRE_AVAL,  @ISNU_RUCC_AVAL,  @ISNU_TELE_AVAL,   @ISDE_LUGA_GIRO,       
     @VSTI_CLIE, @CNIM_SALD, @CNIM_AMRT, @CNIM_INTR, @CNIM_VALO_CUOT,@ISCO_USUA_MODI,GETDATE(), @ISCO_USUA_MODI, GETDATE() )      
      
   If @@error <> 0      
      Begin      
        Rollback tran      
        Return      
      End          
      
   Select @VNNU_SECU = ISNULL(Max(NU_SECU),0) + 1      
   From   TDKARD_DOCU      
   Where  CO_EMPR = @ISCO_EMPR      
      
   Insert Into TDKARD_DOCU (CO_EMPR, NU_SECU,CO_TIPO_DOCU, NU_DOCU_CLIE, CO_CLIE, CO_ESTA_ACTU,      
              CO_ESTA_DOCU, NU_CORR_MODI, CO_USUA_CREA,FE_USUA_CREA, CO_USUA_MODI, FE_USUA_MODI )      
   Values ( @ISCO_EMPR, @VNNU_SECU , @OSTI_DOCU, @VSUL_CORR_LETR, @ISCO_CLIE,      
     @ISCO_ESTA_DOCU,   @ISCO_ESTA_DOCU, @VNNU_SECU, @ISCO_USUA_MODI,GETDATE(), @ISCO_USUA_MODI, GETDATE() )        
      
   If @@error <> 0      
      Begin      
        Rollback tran      
        Return      
      End       
      
   Insert Into TDCANJ_CL02 (CO_EMPR, CO_UNID_CONC, CO_CLIE, NU_CANJ, FE_CANJ, NU_SECU_CANJ,      
  NU_ORDE_LETR, NU_LETR_CLIE, CO_TIPO_DOCU, NU_DOCU_CLIE, CO_USUA_CREA,FE_USUA_CREA, CO_USUA_MODI, FE_USUA_MODI)      
   Values ( @ISCO_EMPR, @ISCO_UNID_CNTB, @ISCO_CLIE, @ISNU_CANJ, @IDFE_CANJ, @CNNU_ORDE_LETR, @CNNU_ORDE_LETR,      
        @VSUL_CORR_LETR, NULL, NULL, @ISCO_USUA_MODI,GETDATE(), @ISCO_USUA_MODI, GETDATE() )      
      
   If @@error <> 0      
      Begin      
        Rollback tran      
        Return      
      End          
      
      
   Fetch CU_TCCANJ_CL02_I01_1 Into      
   @CNNU_ORDE_LETR, @CSUL_CORR_LETR, @CDFE_VENC, @CNIM_TOTA,       
   @CNIM_SALD, @CNIM_AMRT, @CNIM_INTR, @CNIM_VALO_CUOT, @CSDE_GLOS      
      
  Select @VNNU_FETC_0001 = @@FETCH_STATUS      
      
END      
      
CLOSE CU_TCCANJ_CL02_I01_1      
DEALLOCATE CU_TCCANJ_CL02_I01_1      
      
Commit Tran      
      
Select @ISST_MODI      
      
/*------------------------- Fin ------------------------------*/

GO
